package com.fau.hm.service;

import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Workbook;

import com.fau.hm.entity.MedicalAdmin;
import com.fau.hm.entity.MedicalGroup;
import com.fau.hm.entity.MedicalResource;
import com.fau.hm.entity.MedicalRole;
import com.fau.hm.util.Page;


public interface IUserManagerService {
	
	public MedicalAdmin findUserByName(String username);
	
	public List<MedicalResource> findAllResource();
	
	/**
	 * @desc 查询根节点资源
	 * @return
	 * @author kangyj
	 * @datetime 2015年3月26日,下午4:21:32
	 */
	public List<MedicalResource> findRootResource();
	
	public List<MedicalResource> loadMenu();
	
	/**
	 * @desc 查询所有用户列表
	 * @param map
	 * @param admin
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月12日,下午2:19:54
	 */
	public Page findAllUsers(Map<String, Object> map, MedicalAdmin admin);

	/**
	 * @desc 根据企业id得到企业下的组
	 * @param admin
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月14日,下午8:21:41
	 */
	public List<MedicalGroup> findGroupByEid(MedicalAdmin admin);
	
	/**
	 * @desc 根据部门id得到企业下的角色
	 * @param admin
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月14日,下午8:21:41
	 */
	public List<MedicalRole> findRoleByEid(MedicalAdmin admin);
	
	/**
	 * @desc 用户登录名称唯一性验证
	 * @param username
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月15日,下午5:35:56
	 */
	public boolean findUserByUserName(String eid, String username);
	
	/**
	 * @desc 保存用户信息 
	 * @param admin
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月14日,下午8:52:41
	 */
	public boolean save(MedicalAdmin admin);
	
	/**
	 * @desc 保存修改的用户信息
	 * @param admin
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月16日,下午6:08:48
	 */
	public boolean saveEdit(MedicalAdmin admin);
	
	/**
	 * @desc 根据用户id查找用户信息
	 * @param id
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月14日,下午8:53:34
	 */
	public MedicalAdmin findById(String id);
	
	/**
	 * @desc 删除用户信息
	 * @param admin
	 * @author dangjh
	 * @datetime 2014年10月16日,下午10:37:44
	 */
	public void delUser(MedicalAdmin admin);
	
	/**
	 * @desc 导出当前页员工信息
	 * @param ids
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月20日,下午12:18:38
	 */
	public Workbook currentPage(String ids) throws Exception;
	
	/**
	 * @desc 导出所有员工信息
	 * @return
	 * @author dangjh
	 * @datetime 2014年10月20日,下午2:19:35
	 */
	public Workbook allPage(MedicalAdmin admin) throws Exception;
	
	/**
	 * @desc 导入用户信息数据 
	 * @param admin
	 * @param file
	 * @throws IOException
	 * @author dangjh
	 * @datetime 2014年11月7日,上午11:47:37
	 */
	public void importSave(MedicalAdmin admin, File file) throws Exception;
	
	/**
	 * @desc 下载员工信息模板
	 * @param admin
	 * @return
	 * @author dangjh
	 * @datetime 2014年11月7日,下午2:29:32
	 */
	public Workbook template(MedicalAdmin admin) throws Exception;
	
}
